Receptors in the human eye are only capable of detecting light having wavelengths from 400 nm to 700 nm. These receptors are called cones and are of three different types, including one for red light, one for green light and one for blue light. If a single wavelength of light is observed, the relative responses of these three receptors allow us to discern what we call the color of the light. This phenomenon is extremely useful because it enables generating a range of colors by simply adding together various proportions of light from just three different wavelengths. The process, known as additive color matching, is utilized in color television systems. A resulting image to be displayed is broken down into an array of picture elements or pixels to be displayed.
Generally, each pixel displays a proportion of red, green or blue depending on the signals driven to the display. The representation of an image in red, green and blue is commonly referred to as RGB. However, transmitting or storing these RGB color components requires significant bandwidth. Accordingly, luminance and color difference coding is often used to reduce the bandwidth of an image to be displayed. For example, the YUV format contains a Y portion representing a luminance component (also known as Luma) associated with brightness and U and V portions representing chrominance components (also know as Chroma 1 and Chroma 2) associated with color. In addition to reducing bandwidth, the YUV format models human perception of color more closely than the standard RGB format.
As digital circuits become more prominent, more systems continue to migrate from analog systems to digital systems. However, as the bandwidth requirements for digital systems continue to increase, integrated circuits have a more difficult time processing the data. For example, analog television transmission is currently being replaced by high definition television (HDTV). Even with the reduced bandwidth provided by the YUV format, the HDTV format has significant data requirements. An HDTV image may have 1920×1080 pixels and may use six times the bandwidth of traditional standard-definition TV. Therefore, it is a challenge to economically distribute the new HDTV programming over existing satellite, cable, and IPTV networks.
Video compression is often used to reduce the amount of data to be transmitted in a data transmission network, such as a television broadcast network. One main video compression scheme may be found in the Motion Picture Experts Group (MPEG) standards. Video compression using one or more MPEG standards is currently implemented in a variety of video imaging devices, such as digital televisions, set-top boxes, digital satellite systems, HDTV decoders, DVD players, video conferences and web phones, for example. The MPEG standards employ a function called the Discrete Cosine Transform (DCT) that takes a square of pixel blocks, and removes redundant information that is imperceptible to the viewer. The received compressed data is then decoded using the Inverse Discrete Cosine Transform (IDCT) function.
A device designed to compress high definition advanced video coding (HD AVC) in real time may demand more than 500 billion operations per second. While conventional central processing units (CPUs) are extremely powerful, their architecture is not well suited to all video processing tasks. For example, block-based and pixel-level processing tasks require many compute cycles and are also very data-flow intensive. Therefore, implementing video processing in conventional CPUs requires complex register pipelines with fast memory access. Similarly, a programmable digital signal processor (DSP) is often limited by the number of instruction issues per cycle, the level of pipelining in the execution unit, and the maximum data width to fully feed the execution units. Video quality is often compromised as a result of the limited cycles available per task in a programmable DSP. Recursive algorithms such as infinite impulse response (IIR) filtering, variable-length coding (VLC) in the MPEG standards, and context-adaptive variable length coding (CAVLC) in the MPEG AVC standard are particularly inefficient when mapped to DSPs. That is, data recursion prevents inductive logic programming (ILP) from being used effectively. Finally, a DSP may not be suitable to incorporate a decoder and an encoder solution as required in some full duplexing implementations.
Accordingly, there is a need for an improved circuit for and method of a method of encoding a data stream.